5317. Значение бита

 

Даны целые числа а и k. Выведите значение k-го бита числа а, равное 0 или 1.

 

Вход. В одной строке заданы два числа a и k (0 ≤ a ≤ 109).

 

Выход. Выведите значение k-ого бита числа а.

 

Пример входа

179 0

 

Пример выхода

1

 

 

РЕШЕНИЕ

элементарная задача – битовые операции

 

Анализ алгоритма

Выражение a & (1 << k) равно 0, если k-ый бит числа а равен 0. Если приведенное выражение равно степени двойки, то бит равен 1. В зависимости от этого выводим ответ.

 

Реализация алгоритма

Читаем входные данные. Вычисляем и выводим ответ.

 

scanf("%d %d",&a,&k);

res = ((a & (1 << k)) > 0);

printf("%d\n",res);

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args) 

  {

    Scanner con = new Scanner(System.in);

    int a = con.nextInt();

    int k = con.nextInt();

    int res = ((a & (1 << k)) > 0) ? 1 : 0;

    System.out.println(res);

  }

}